home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / wildcat / dupmsg23.zip / DUPMSG.DOC next >
Text File  |  1992-08-14  |  23KB  |  579 lines

  1. ┌──────────────────────────────────────────┐
  2. │ DupMsg.exe     v2.3             8-14-92  │
  3. └──────────────────────────────────────────┘
  4.  
  5. What it Does
  6. ------------
  7.  
  8. DupMsg finds and deletes duplicate messages from WildCat! 3.0 and
  9. 3.5 message databases.  Duplicates will be identified even if the
  10. tagline, date or subject line has been changed.  In addition,
  11. DupMsg will delete old messages by date and messages from specific
  12. users as desired.
  13.  
  14. Deleted messages can be simply marked as deleted for later review,
  15. or completely purged from the databases.  Marked messages can be
  16. easily purged on a subsequent DupMsg run.
  17.  
  18. Since some BBS utilities modify the subject line and the message's
  19. date and time, DupMsg can be configured to ignore both subject and
  20. date/time when identifying duplicates.  PC Relay users should
  21. select the "ignore date/time" option as the PC Relay program does
  22. change the message's date.
  23.  
  24.  
  25. How it Works
  26. ------------
  27.  
  28. Upon opening a database, DupMsg first purges messages that were
  29. marked for later deletion.  It uses the marked-for-deletion key
  30. from the key file (MSGxxx.IX) to identify these messages.
  31.  
  32. The database is then searched for messages from users listed in the
  33. DUPMSG.LST file.  This process uses a key search so it is quite
  34. fast, unless there are many names in the DUPMSG.LST file.
  35.  
  36. Next, messages from one person at a time are read and each
  37. message's date is checked to see if it is too old.  Old messages
  38. are deleted on this first scan through the database.  Information
  39. on the messages are sorted by the addressee's name and possible
  40. duplicates are identified using a combination of the subject,
  41. date/time, and the actual text of the message.
  42.  
  43. Suspected duplicates are then compared letter by letter and exact
  44. duplicates are deleted.  If the two messages differ, DupMsg checks
  45. to see if the differences are in the taglines and not in the
  46. message itself.  Messages that only have tagline differences are
  47. treated like exact duplicates.  If a duplicate pair is found, the
  48. message with the higher message number is deleted.
  49.  
  50. The standard tagline format has a space as the first character in
  51. the line, then either an asterisk or square box as the second
  52. character.  DupMsg recognizes the standard formats as well as non-
  53. standard taglines from the following programs:
  54.  
  55.      PC Relay 4.1x
  56.      SF UTI   3.16
  57.      RBBS-UTI 2.0
  58.  
  59. DupMsg can also handle WildMail messages when that program moves
  60. the end-of-message marker, FidoNet ^@ control lines and word
  61. wrapping.  While the DupMsg author will try to keep up with
  62. different non-standard taglines, the standard format
  63. should be used in programs whenever possible.  Standard formats
  64. will allow all programs to work more efficiently.
  65.  
  66.  
  67. Other Information
  68. -----------------
  69.  
  70. If DupMsg deletes a message with an attached file, the attached
  71. file will be deleted as well.  Text files that are imported using
  72. the <<*.IMP method will not be deleted.
  73.  
  74. Pressing CTRL-C will signal DupMsg to stop processing at the next
  75. safe opportunity, save and close the database, and update the
  76. current message counter.
  77.  
  78. If running DupMsg remotely using the Doorway program, using the
  79. /V:D option to handle direct screen writing.
  80.  
  81. Messages that are marked with the "No Delete" flag will not be
  82. deleted.
  83.  
  84.  
  85. Setup
  86. -----
  87.  
  88. DupMsg can be run from any directory and looks for its
  89. configuration file and the required WildCat files in the path.  As
  90. long as the main WildCat directory is in the path, you should have
  91. no problems with DupMsg.
  92.  
  93. DupMsg uses the following files:
  94.  
  95.      MAKEWILD.DAT        Found using the WCHOME variable, in the
  96.                          current directory, or in the path.
  97.      CONFDESC.DAT        In the same directory as MAKEWILD.DAT.
  98.      NODEINFO.DAT        Path is defined in Makewild.
  99.  
  100.      DUPMSG.CFG          Either found in the current directory or
  101.                          path or will be created by DupMsg's Setup
  102.                          section.
  103.  
  104.      DUPMSG.LST          Found in the current directory or in the
  105.                          path.
  106.  
  107.      DUPMSG.LOG          If found in the current directory or path,
  108.                          all log entries will be added to the
  109.                          current file.  If not found, then a new
  110.                          log file will be created in the current
  111.                          directory.
  112.  
  113.      All the messages conferences are defined using Makewild and
  114.      the descriptions are stored in Confdesc.dat.
  115.  
  116. The first time DupMsg is used, it will run the configuration module
  117. and create a config file.  The config file allows you to customize
  118. the DupMsg program to meet your needs.  The config file options
  119. are:
  120.  
  121.  
  122.                          Master Settings
  123.  
  124.  
  125. 1)  Log Options
  126.  
  127.      No Log:   No information is written to the log or echoed to
  128.                the screen.  If all three fields are set to "No
  129.                Log", then no log file will be created.
  130.  
  131.      Brief:    Displays and logs the message number being deleted
  132.                and the reason for deletion.
  133.  
  134.      Complete: Displays the above information and a second line
  135.                showing the message FROM-name, TO-name, and
  136.                Subject.
  137.  
  138. 2)  Delete Options
  139.  
  140.      Delete:   Completely delete messages from the database and
  141.                free up the space for new messages.  The drawback
  142.                is that deleted messages cannot be recovered; once
  143.                deleted they are gone forever.
  144.  
  145.      Mark:     Messages are not removed from the database and
  146.                still occupy space on the disk.  Marked messages
  147.                can be reviewed by the Sysop, undeleted, or
  148.                completely deleted at a later time.
  149.  
  150.      * OFF *:  Turns this function off for all conferences.
  151.  
  152. 3)  Duplicate Options
  153.  
  154.      Ignore Date:  Some mail doors replace the date and time of a
  155.                message with the date and time that the message was
  156.                uploaded.  The same message uploaded twice may
  157.                cause a pair of duplicates to have different dates. 
  158.                If YES, duplicate messages with different dates
  159.                and/or times will be deleted.  If NO, they will be
  160.                considered different messages.
  161.  
  162.      Ignore Subject:  If YES, duplicate message with different
  163.                subjects will be deleted.  This can be useful to
  164.                catch duplicate BBS and For Sale advertising.  If
  165.                NO, they will be considered different messages.
  166.  
  167.                Some BBS utilities change a mixed case subject line
  168.                to all upper case.  Because of this, upper and
  169.                lower case differences are always ignored.
  170.  
  171.  
  172.                     Conference Configuration
  173.  
  174. 1)   Purge marked messages:  All messages marked as deleted will be
  175.      purged from the database.  This option is performed before any
  176.      duplicate or old messages are marked, so only messages marked
  177.      directly from the WildCat message menu or on prior DupMsg runs
  178.      will be purged from the database.
  179.  
  180. 2)   Delete blocked messages:  This refers to messages from users
  181.      who are listed in the DUPMSG.LST file as being blocked from
  182.      your BBS.  All messages FROM users in your DUPMSG.LST file
  183.      will be deleted.
  184.  
  185. 3)   Delete duplicate messages:  The most important switch in the
  186.      program, this turns duplicate message checking on or off for
  187.      each conference.  Exact duplicates and messages with extra &
  188.      different taglines will be found and the newer message (the
  189.      one with the higher message number) will be deleted.
  190.  
  191. 4)   Delete old messages:  Messages older than the number of days
  192.      specified will be deleted.  Old messages are determined based
  193.      on the date & time of the messages, not on when the messages
  194.      were introduced to the BBS.  If a messages has the "No Delete"
  195.      flag set (see WildCat docs) then that message will not be
  196.      deleted.
  197.  
  198. 5)   Number of days:  If "Delete Old Messages" is set to "YES",
  199.      this is the number of days that a message will be kept in the
  200.      database.  The default is 30 days, so messages over 30 days
  201.      old will be deleted, even if they have just been uploaded to
  202.      the BBS.  If this field is set to zero, then all messages will
  203.      be deleted, except those with today's date.
  204.  
  205. 6)   High message number:  Each time the program is run, DupMsg
  206.      stores each conference's high message number in this field. 
  207.      If the current high message number is the same as the number
  208.      stored in the config file, then no duplicate checking is
  209.      performed.  If the current number is larger, then only the new
  210.      messages will be checked as possible duplicates.  If the
  211.      current number is smaller than the config file number, then
  212.      DupMsg will assume that the database has been renumbered and
  213.      will check every message.
  214.  
  215.  
  216. Blocked Messages  (DUPMSG.LST)
  217. ------------------------------
  218. You now have the option of deleting all messages from a given user
  219. name.  When configured to delete blocked messages, DupMsg will read
  220. each line from DUPMSG.LST and search for all messages FROM that
  221. user name.  If found, the message(s) will be marked or deleted as
  222. configured.
  223.  
  224. This is useful for problem users on the network that you cannot
  225. lock out any other way, but it should be used sparingly.  Examples
  226. of proper use are:
  227.  
  228.      --   A user consistently uses foul language, and the source
  229.           BBS is not taking care of it.
  230.      --   A chain letter, advertisement, etc. was left in every
  231.           single message conference.
  232.  
  233. There is a danger that this option may be used for censorship, or
  234. that innocent users may be locked out unnecessarily.  Sysops should
  235. take care to use it only when necessary.
  236.  
  237. The DUPMSG.LST file is a standard text file that contains one line
  238. per user name.  Case is ignored when processing the file.
  239.  
  240.  
  241. Memory Requirements
  242. -------------------
  243.  
  244. DupMsg requires a minimum of 198K to run, but will use up to 255K
  245. if available.  Using maximum memory, DupMsg is able to compare up
  246. to 2000 messages at a time.  Since many BBSs have conferences with
  247. more than 2000 messages, DupMsg selects and processes messages from
  248. only one person at a time.
  249.  
  250. If there are more than 2000 messages from any one user, or if the
  251. program runs out of memory, DupMsg will process the first 2000
  252. messages or as many as it can hold in memory, then go back and
  253. continue duplicate checking from where it left off.  Duplicate
  254. messages will only be missed if one copy is in the first 2000 and
  255. the other copy is in subsequent batches.
  256.  
  257. Remember, the limitation is 2000 messages from a single user, not
  258. 2000 total messages.  DupMsg only checks for duplicates in one
  259. conference at a time.
  260.  
  261.  
  262. Multi-Node BBSs
  263. ---------------
  264.  
  265. If you are running a single-line version of WildCat, DupMsg cannot
  266. be run while the BBS is up, or when any other utility is accessing
  267. the message databases.
  268.  
  269. In order to run DupMsg while the BBS is online, you must be running
  270. a multi-line WildCat version and have either DOS share or Novell
  271. defined in the Makewild program.  In addition, if the autonode
  272. option is not selected in MAKEWILD, the environment variable
  273. WCNODEID must be set to a valid number between 1 and 250.
  274.  
  275. Use the following command:
  276.  
  277.      SET WCNODEID=3
  278.  
  279. using 3 or whichever node ID you wish to use.  This node ID must
  280. not be duplicated.  No other BBS node or program using this node ID
  281. may be running while DupMsg is accessing the message databases.
  282.  
  283.  
  284. WCHOME Environment Variable
  285. ---------------------------
  286.  
  287. Although not required, you may specify your main WildCat directory
  288. using the WCHOME environment variable.  While this will not save
  289. any noticeable time, it may serve to avoid confusion especially if
  290. you have more than one copy of MAKEWILD.DAT or CONFDESC.DAT on your
  291. disk.  The following is an example:
  292.  
  293.      SET WCHOME=C:\WC30
  294.  
  295.  
  296. Log File
  297. --------
  298.  
  299. DupMsg writes to a log file which records information as specified
  300. in the config file.  The default log file is DUPMSG.LOG, but like
  301. the default config file it can be changed by entering a number on
  302. the command line.  The section on command line options covers this
  303. option in more detail.
  304.  
  305. If the log file is not found in the current directory or in the
  306. path, a new log file will be created in the current directory.  If
  307. a log file is found, DupMsg will add log information to the end of
  308. it.
  309.  
  310.  
  311. Command Line Options
  312. --------------------
  313.  
  314. There are five optional command line parameters.  These are:
  315.  
  316. SETUP:    Runs the setup program to create and/or modify a config
  317.           file.
  318.  
  319. RESET:    Resets the config file high message numbers to zero.
  320.  
  321. HIGH:     Sets the config file high message numbers to match the
  322.           database high message number.  This is useful after a
  323.           database renumber.
  324.  
  325. HELP:     Display the DupMsg help screen.
  326. 1-99:     An optional number specifies which configuration and log
  327.           files to use.  If a number is specified, the default
  328.           config file  "DUPMSG.CFG" is not used.  Instead, a config
  329.           file numbered DUPMSG1.CFG to DUPMSG99.CFG will be used.
  330.           For example:
  331.  
  332.           DUPMSG 15
  333.  
  334.           will tell DupMsg to use config file 'DUPMSG15.CFG' and
  335.           log file 'DUPMSG15.LOG'.
  336.  
  337. If no command line parameters are used, DupMsg will use the values
  338. in DUPMSG.CFG to run the DupMsg program and log information to
  339. DUPMSG.LOG.
  340.  
  341.  
  342. DOS Errorlevel
  343. --------------
  344.  
  345. DupMsg returns one of three DOS errorlevels at the end of the
  346. program.  These errorlevels can be tested in a batch file to
  347. perform special functions (like deleting the log file) if desired.
  348.  
  349. Errorlevel 2:  DupMsg ended abnormally.  A required file may be
  350.                missing, there may be memory problems, or perhaps
  351.                there was a database error.  See the log file for
  352.                more details.
  353.  
  354. Errorlevel 1:  DupMsg successfully deleted some duplicate
  355.                messages.  If you are interested in which
  356.                duplicates were found, you can use the batch file
  357.                to save the log for later reading.
  358.  
  359. Errorlevel 0:  DupMsg ended successfully but did not find any
  360.                duplicates, though some old or marked messages may
  361.                have been deleted.
  362.  
  363. Batch files can be setup to test for errorlevels as follows:
  364.  
  365.      If Errorlevel = 2  .......
  366.      If Errorlevel = 1  .......
  367.      If Errorlevel = 0  .......
  368.  
  369. If the errorlevel test is true, whatever follows it will be treated
  370. like a regular DOS command.  There are some exceptions, so refer to
  371. a good DOS reference for assistance.
  372.  
  373. Remember that if errorlevel 2 is true, both of the following lines
  374. (errorlevel 1 & 0) will also be true.  Batch files can be
  375. programmed to skip lines by using GOTO statements, such as:
  376.  
  377.      If Errorlevel = 2 goto ERROR
  378.      If Errorlevel = 1 goto SAVE
  379.      If Errorlevel = 0 goto DELETE
  380.      :ERROR
  381.           {Perform error processing}
  382.      Goto END
  383.  
  384.      :SAVE
  385.           {Save the log file for later reading}
  386.      Goto END
  387.  
  388.      :DELETE
  389.           {Delete the log file}
  390.  
  391.      :END
  392.  
  393.  
  394. Registration & Support
  395. ----------------------
  396.  
  397. DupMsg is distributed as shareware.  Shareware software allows you
  398. to try before you buy, thus you never need to pay for a shareware
  399. program that does not meet your needs.
  400.  
  401. You may use DupMsg for 30 days at no charge, allowing you a chance
  402. to see if DupMsg meets your needs.  If you keep using DupMsg after
  403. 30 days, you must register the software by sending in the
  404. registration form and paying the registration fee of $20 (US).
  405.  
  406. Registration entitles the purchaser to use DupMsg on one BBS
  407. system.  A BBS system is defined as either a single computer
  408. system, or a network system where multiple computers are connected
  409. by direct cable to the same network server.
  410.  
  411. Even after you register DupMsg, your satisfaction is guaranteed. 
  412. If within 30 days after registering DupMsg, you decide that you no
  413. longer wish to use the program, simply write a letter to the author
  414. requesting a refund and your registration fee will be refunded. 
  415. Only the registration fee will be refunded, not the cost of
  416. diskettes that may have been ordered.
  417.  
  418. The author can be reached via the WildNet, FidoNet, and RelayNet
  419. mail networks;  address messages to Jim Metzler.
  420.  
  421. Registration fees and requests for additional information should be
  422. addressed to:
  423.  
  424. Jim Metzler
  425. WPI Box 188
  426. 100 Institute Rd.
  427. Worcester, MA 01609
  428.  
  429. Voice: (508) 799-7540
  430. BBS:   (508) 754-6512
  431.  
  432.  
  433. Distribution 
  434. ------------
  435. Several WildNet Sysops have agreed to post DupMsg in its original
  436. ARJ archive with Security Envelope.  Thanks go to these Sysops and
  437. the many others who have supported DupMsg.
  438.  
  439. The original archive may be downloaded from the following BBSs:
  440.  
  441. Miwok Village        --  Worcester, MA         --  (508) 754-6512
  442.  
  443. B-Line BBS           --  Muncie, IN            --  (317) 288-5569
  444. Lost BBS             --  Overland Park, KS     --  (913) 642-0349
  445. NOHO BBS             --  Huntington Beach, CA  --  (714) 848-1506
  446. MSI HQ BBS           --  Bakersfield, CA       --  (805) 395-0250
  447. Programmer's Forum   --  Fountain Inn, SC      --  (803) 862-4616
  448.  
  449. DupMsg and the Enhanced UTIs can be F'Reqed from:
  450.  
  451.      Programmer's Forum --  HST Dual Std.
  452.      Lost BBS           --  Compucom, V.32
  453.  
  454. The request names are 'DUPMSG' and 'UTI'.
  455.  
  456. You are authorized to distribute DupMsg provided the executable
  457. program, documentation, and registration form are included in their
  458. original, unmodified state.  No fee may be charged for the
  459. distribution of DupMsg without the express written permission of
  460. the author.
  461.  
  462. Please do not compress the executable program; testing has shown
  463. that DupMsg takes approximately 10% longer to perform a given task
  464. when compressed versus its original, un-compressed state.
  465.  
  466.  
  467. Warranty Disclosure
  468. -------------------
  469.  
  470. Normally, software distributed through bulletin boards systems or
  471. shared from one user to another does not carry a warranty, mainly
  472. because the author does not have control over the product and the
  473. program can be modified either intentionally or accidentally
  474. without the author's knowledge.
  475.  
  476. Recognizing this, DupMsg carries either no warranty or a limited
  477. warranty depending on the distribution method.
  478.  
  479. LIMITED WARRANTY:
  480.  
  481.      This applies only when the program is received directly from
  482.      the author on diskette, or when it is received in the original
  483.      ARJ archive, complete with a valid Security Envelope.  The ARJ
  484.      Security Envelope must read "ARJ archive created by James W.
  485.      Metzler R#0301".  The user must keep the diskette or original
  486.      ARJ archive as proof of this warranty.
  487.    - What is covered:  The DupMsg program will perform
  488.      substantially as described in this document.  In addition,
  489.      while the program may contain minor bugs or errors, it is
  490.      warranted to be free of major defects for a period of six
  491.      months.  Diskettes received from the author are guaranteed to
  492.      be free or defects for a period of six months from date of
  493.      receipt.
  494.  
  495.    - What is not covered:  The author will not be liable for
  496.      incidental and/or consequential damages, including injury to
  497.      property, interruption of service, loss of business and/or
  498.      anticipated profits, or other consequential damages that may
  499.      result from use, malfunction or failure of the DupMsg program,
  500.      or from errors or omissions in the documentation.  Some states
  501.      do not allow the exclusion or limitation of incidental or
  502.      consequential damages, so the above limitation may not apply
  503.      to you.
  504.  
  505.      Any attempt to modify the DupMsg program will void this
  506.      warranty in its entirety.
  507.  
  508.    - If there is a problem:  Within 60 days of notification that a
  509.      major defect exists, the author, at his discretion, will
  510.      either fix the program and forward the replacement at no cost
  511.      to the registered user, or will refund the registration fee.
  512.  
  513.      Defective diskettes will be replaced within 60 days at no cost
  514.      to the purchaser.
  515.  
  516.    - How to get service:  Send a written letter to the author
  517.      detailing the type of problem and symptoms experienced. 
  518.      Include your name, address, voice phone number and
  519.      registration number and any additional information that you
  520.      believe may be useful, such as any TSRs and disk cache
  521.      programs in use.
  522.  
  523.      The author may contact you by voice or written letter for more
  524.      information to help in tracking down the problem.
  525.  
  526.  
  527. NO WARRANTY:
  528.  
  529.      If you did not receive the DupMsg program directly from the
  530.      author, or in its original ARJ archive with a genuine Security
  531.      Envelope (see above), then there is a possibility that the
  532.      program and/or documentation has been modified, or that the
  533.      program is not the author's work.  The author makes no
  534.      warranty of any kind, express or implied, including any
  535.      warranties of fitness and/or merchantability if the program
  536.      was received from other sources.
  537.  
  538.      The author will not be liable for any damages, whether direct,
  539.      indirect, special or consequential arising from a failure of
  540.      this program to operate in the manner desired by the user. 
  541.      The author will not be liable for any damage to data or
  542.      property which may be caused directly or indirectly by use of
  543.      the program.
  544.  
  545. When trying new software, always backup any and all important files
  546. on your system.
  547.  
  548.  
  549. Copyright
  550. ---------
  551.  
  552. This program is:
  553. Copyright (c) 1991, 1992 James W. Metzler, All Rights Reserved.
  554.  
  555.  
  556. About the Author
  557. ----------------
  558.  
  559. Jim Metzler grew up on the IBM side of Silicon Valley, within
  560. blocks of the Santa Teresa IBM plant.  Jim is an Eagle Scout and
  561. Vigil member of the Order of the Arrow; one of his first computer
  562. projects was computerizing the membership records for the Santa
  563. Clara County OA Lodge (Miwok 439) in the early 1980's.
  564.  
  565. After attending college part-time, Jim joined the Navy as a Data
  566. Processing Technician and spent 3 years in and around Japan,
  567. stationed onboard the USS Blue Ridge (LCC-19), Seventh Fleet
  568. Flagship.  Jim operated, then later managed two Wang mini-computers
  569. that served Seventh Fleet staff and was responsible for the Ship's
  570. ADP Security program.  For the last two years, Jim served at the
  571. White House Communications Agency in Washington, DC, providing
  572. computer support to the President and his staff both in town and on
  573. the road.
  574.  
  575. Just recently out of the Navy, Jim is continuing his college
  576. studies at Worcester Polytechnic Institute in Worcester, MA.
  577.  
  578. -----------------------------------------------------------------
  579.